#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
typedef int DataType;
typedef struct DNode
{
    DataType data;
    struct DNode *prior, *next;
} DNode, *DLinkList;

// 双链表初始化
bool InitDLinkList(DLinkList *L)
{
    *L = (DNode *)malloc(sizeof(DNode)); // 分配一个头结点
    if (*L == NULL)
    {
        return false;
    }
    (*L)->next = NULL;
    (*L)->prior = NULL;
    return true;
}
// 打印双链表
void printList(DLinkList L)
{
    DNode *p = L;
    while (p != NULL)
    {
        printf("%d -> ", p->next);
        p = p->next;
    }
    printf("NULL\n");
}
// 判断双链表是否为空
bool Empty(DLinkList L)
{
    if (L->next == NULL)
    {
        return true;
    }
    else
    {
        return false;
    }
}
// 在p节点之后插入s节点
bool InsertNextDNode(DNode *p, DNode *s)
{
    if (p == NULL || s == NULL)
    {
        return false;
    }
    s->next = p->next;
    if (p->next != NULL)
    {
        p->next->prior = s;
    }
    s->prior = p;
    p->next = s;
    return true;
}
void test01()
{
    // 初始化双链表
    DLinkList L;
    InitDLinkList(&L);
    printList(L->next);
}
int main()
{
    test01();
    return 0;
}